package com.sfpay.coreplatform.member.service.proxy.account;

import com.sfpay.coreplatform.account.valueobject.dto.OpenAcc;
import com.sfpay.coreplatform.account.valueobject.dto.OpenAccReturn;
import com.sfpay.coreplatform.account.valueobject.dto.ResetAccountPsw;
import com.sfpay.coreplatform.account.valueobject.dto.UpdateAccountPsw;
import com.sfpay.coreplatform.account.valueobject.tmo.AccountVO;
import com.sfpay.coreplatform.member.service.exception.MemberServiceException;

/**
 * 
 * 
 * 类说明：账户系统，修改更新类接口
 *  
 * 
 * <p>
 * 详细描述：
 *   
 * 
 * @author 313717
 *   
 * CreateDate: 2012-5-4
 */
public interface IAcctProxyManageService
{	
	
	/**
	 * 
	 *
	 * 方法说明：更新账户密码
	 *
	 * @param updateAccountPswList
	 * @throws MemberServiceException
	 */
	public void updateAccountPsw(UpdateAccountPsw updateAccountPsw) throws MemberServiceException;
	
	
	/**
	 * 根据账户编号重置支付密码
	 *
	 * 方法说明：
	 *
	 * @param accNo
	 * @return
	 * @throws MemberServiceException
	 *
	 */
	public void resetAccountPsw(ResetAccountPsw resetAccountPsw) throws MemberServiceException;
	
	
	/**
	 * 方法说明：开户
	 *
	 * @param openAcc the open acc
	 * @return the OpenAccReturn
	 * @throws MemberServiceException
	 */
	public OpenAccReturn openAccount(OpenAcc openAcc) throws MemberServiceException;
	
	/**
	 *
	 * 方法说明：激活账户
	 *
	 * @param accountNo 账户编号
	 * @return
	 */
	public void makeAccountActive(Long accountNo) throws MemberServiceException;
	
	
	/**
	 * 方法说明：账户禁出，不允许借方交易
	 * @param accountNo
	 * @throws MemberServiceException
	 */
	public AccountVO makeAccountForbidOut(Long accountNo) throws MemberServiceException;
	
	
	/**
	 *
	 * 方法说明：把账户状态置为禁入，禁止贷方交易
	 *
	 * @param accountNo 账户编号
	 * @return
	 */
	public AccountVO makeAccountForbidIn(Long accountNo) throws MemberServiceException;
	
	
	/**
	 * 置账户为正常
	 * @param accountNo
	 * @throws MemberServiceException
	 */
	public void makeAccountNormal(Long accountNo) throws MemberServiceException;
	
	
	/**
	 * 置账户为注销状态,即注销账户
	 * @param accountNo
	 * @throws MemberServiceException
	 */
	public void makeAccountCancel(Long accountNo) throws MemberServiceException;
	
	
}
